package com.yakaten.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.stream.FileImageInputStream;

import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;

public class MakeShopToEccubeCsv {

	// 商品名(※ 必須)
	// 表示ステータス(公開・非公開) [省略時初期値: 2]
	// 商品コード
	// 一覧-メインコメント(※ 必須)
	// 詳細-メインコメント(※ 必須)
	// 在庫数
	// 販売価格(※ 必須)
	// カテゴリID(※ 必須)
	// 詳細-サブタイトル(1)
	// 詳細-サブコメント(1)
	private static String tile = "商品名(※ 必須),表示ステータス(公開・非公開) [省略時初期値: 2],商品コード,一覧-メインコメント(※ 必須),詳細-メインコメント(※ 必須),在庫数,販売価格(※ 必須),カテゴリID(※ 必須),詳細-サブタイトル(1),詳細-サブコメント(1)";

	private static String WORK_FOLDER="C:/m2e/";

	private static void checkWorkFolder(){
		File workFolder = new File(WORK_FOLDER);

	}
	public static void main(String[] args) {

		CSVWriter writer = null;
		try {
			CSVReader reader = new CSVReader(new InputStreamReader(	new FileInputStream(new File(
					WORK_FOLDER+"upload_20140210105723.csv")),
					"shift-jis"), ',', '"', 1);

			writer = new CSVWriter(new FileWriter(WORK_FOLDER+"eccube.csv"), ',');
			// feed in your array (or convert your data to an array)

			String sep = ",";
			String[] nextLine;
			while ((nextLine = reader.readNext()) != null) {
				// nextLine[] is an array of values from the line
//				System.out.println(
//						nextLine[2]//itemid
//						+ sep
//						+ nextLine[3] //jancd
//						+ sep
//						+ nextLine[4] //category_id
//						+ sep
//						+ nextLine[5] //category_name
//						+ sep
//						+ nextLine[6]  //item_name
//						+ sep
//						+ nextLine[8]//price
//						+ sep
//						+ nextLine[15] //zaikou
////						+ sep
////						+ nextLine[49].replaceAll("\r\n", "").replaceAll("\n","")
//						);

//				System.out.println("http://tokyodenki.shop33.makeshop.jp/shopimages/tokyodenki/"+nextLine[2]+".jpg");
//				writer.writeNext(new String[]{"http://tokyodenki.shop33.makeshop.jp/shopimages/tokyodenki/"+nextLine[2]+".jpg"});
				if( nextLine[6]!=null && !"".equals( nextLine[6])){
					String[] entries =getNewData(nextLine);
					writer.writeNext(entries);
				}
//				 break;

			}
		} catch (FileNotFoundException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} finally {
			try {
				if (writer != null) {
					writer.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	public static String [] getNewData(String [] nextLine){
		String[] entries = new String[13];

		entries[0] = 	nextLine[6];	// 商品名(※ 必須)
		entries[1] = 	"Y".equals(nextLine[51])?"1":"2";    // 表示ステータス(公開・非公開) [省略時初期値: 2]
		entries[2] = 	nextLine[3];// 商品コード
		entries[3] = 	nextLine[6];// 一覧-メインコメント(※ 必須)
		entries[4] = 	nextLine[6];// 詳細-メインコメント(※ 必須)
		entries[5] = 	nextLine[15];// 在庫数
		entries[6] = 	nextLine[8];// 販売価格(※ 必須)
		entries[7] = 	changeCategory(nextLine[4]);// カテゴリID(※ 必須)
		entries[8] = 	"詳細";// 詳細-サブタイトル(1)
		entries[9] = 	nextLine[49].replaceAll("\r\n", "").replaceAll("\n","");// 詳細-サブコメント(1)
		entries[10] = 	nextLine[2]+".jpg";// image
		entries[11] = 	nextLine[2]+".jpg";// image
		entries[12] = 	nextLine[2]+".jpg";// image
		return entries;
	}

	public static String changeCategory(String old){
		Map<String,String > categoryMap = new HashMap<String,String>();
		categoryMap.put("ct9","7");
		categoryMap.put("ct2","8");
		categoryMap.put("ct3","9");
		categoryMap.put("ct4","10");
		categoryMap.put("ct5","11");
		categoryMap.put("ct6","12");
		categoryMap.put("ct7","13");
		categoryMap.put("ct8","14");
		categoryMap.put("ct10","15");
		categoryMap.put("ct11","16");
		categoryMap.put("ct12","17");
		categoryMap.put("ct13","22");
		categoryMap.put("ct38","22");
		categoryMap.put("ct14","32");
		categoryMap.put("ct39","32");
		categoryMap.put("ct15","19");
		categoryMap.put("ct36","19");
		categoryMap.put("ct16","20");
		categoryMap.put("ct37","20");
		categoryMap.put("ct17","23");
		categoryMap.put("ct40","23");
		categoryMap.put("ct18","24");
		categoryMap.put("ct41","24");
		categoryMap.put("ct19","25");
		categoryMap.put("ct42","25");
		categoryMap.put("ct20","26");
		categoryMap.put("ct43","26");
		categoryMap.put("ct21","27");
		categoryMap.put("ct44","27");
		categoryMap.put("ct22","36");
		categoryMap.put("ct45","36");
		categoryMap.put("ct23","30");
		categoryMap.put("ct25","30");
		categoryMap.put("ct24","31");
		categoryMap.put("ct1","31");
		categoryMap.put("ct26","32");
		categoryMap.put("ct46","32");
		categoryMap.put("ct27","33");
		categoryMap.put("ct47","33");
		categoryMap.put("ct28","34");
		categoryMap.put("ct48","34");
		categoryMap.put("ct29","35");
		categoryMap.put("ct49","35");
		categoryMap.put("ct30","36");
		categoryMap.put("ct50","36");
		categoryMap.put("ct31","37");
		categoryMap.put("ct51","37");
		categoryMap.put("ct32","28");
		categoryMap.put("ct52","28");
		categoryMap.put("ct33","41");
		categoryMap.put("ct53","41");
		categoryMap.put("ct34","44");
		categoryMap.put("ct54","44");
		categoryMap.put("ct35","18");
		categoryMap.put("ct55","43");
		categoryMap.put("ct56","43");
		categoryMap.put("ct57","45");
		categoryMap.put("ct58","46");
		categoryMap.put("","47");

		String newCategory = categoryMap.get(old);

		if(newCategory ==null ||"".equals(newCategory))
		{
			newCategory = "47";
		}
		return newCategory;
	}
}
